const instance1 = new Foo<_, _>(0, "");
const result1 = foo<_, string>(0, "");
const tagged1 = tag<_, string>`tags ${12} ${""}`;
type A = Foo<_, string>;
const instance2 = new Foo<number, _>(0, "");
const result2 = foo<number, _>(0, "");
const tagged2 = tag<number, _>`tags ${12} ${""}`;
type A2 = Foo<string, _>;
type A3 = _;